package com.cms.bs.util;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.util.StringUtils;

public class JsonUtil {

	private static ObjectMapper mapper = null;
	
	static {
		mapper = new ObjectMapper();
	}
	
	public static ObjectMapper getObjectMapper(){
		return mapper;
	}
	
	/**
	 * 
	 * @Title: toJSONObject
	 * @Description: obj -> JSONObject
	 * @param obj
	 * @return   
	 * @author: jiang     
	 * @date:   2016年6月8日
	 */
	public static JSONObject toJSONObject(Object obj){
		if(StringUtils.isEmpty(obj)){
			return new JSONObject();
		}
		return JSONObject.parseObject(BaseTypeUtil.safeString(obj));
	}
	
	/**
	 * 
	 * @Title: toJSONArray
	 * @Description: obj -> JSONArray
	 * @param obj
	 * @return   
	 * @author: jiang     
	 * @date:   2016年6月8日
	 */
	public static JSONArray toJSONArray(Object obj){
		if(StringUtils.isEmpty(obj)){
			return new JSONArray();
		}
		return JSONArray.parseArray(BaseTypeUtil.safeString(obj));
	}
	
	/**
	 * 
	 * @Title: toJsonString
	 * @Description: obj -> String
	 * @param obj
	 * @return   
	 * @author: jiang     
	 * @date:   2016年1月13日
	 */
	public static String toJsonString(Object obj){
		try {
			return mapper.writeValueAsString(obj);
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
		return null;
	}
	
}
